// 使用type关键字定义类型，可以交叉，目的也是为了扩展类型

type A = {
    id: number
    username: string
}

// type A = {

// }

type B = A & {
    password: string
}

let b: B = {
    id: 1,
    username: '张三',
    password: '123456'
}

export default {}

// 使用 & 可以合并链接的对象类型，也叫交叉类型

/**
 * type 和 interface 的区别
 * type可以交叉，interface可以继承
 * type可以定义任意类型，interface只能定义对象类型
 * 多次定义type会报错，多次定义interface会合并
 */